﻿//全局变量
STATUS = [
	{'id':1,'text':"在线"},
	{'id':2,'text':"下线"}
];

BUSINESS = [
	{'id':1,'text':"二手车"},
	{'id':2,'text':"在线影院"},
	{'id':3,'text':"在线音乐"}
];

$(function(){
	$('#tb1').find(':checkbox').click(function(){
		var tr = $(this).parent().parent();
		if($("#edit_mode").hasClass('editing')){
			console.log($(this).prop('checked'))
			//如果等于true进入编辑状态，否则退出状态
			if($(this).prop('checked')){
				//当前行进入编辑状态
				RowIntoEditMode(tr);
			}else{
				//当前行退出编辑状态
				RowOutEditMode(tr);
			}
		}
	});
});


function CheckAll(mode,tb){
    //1、选中checkbox
    //2、如果已经进入编辑模式，让选中行进入编辑状态
    //tb = #tb1
    //$(tb) = $('#tb1'),children()表示取匹配的元素中的子元素
    $(tb).children().each(function(){
        //$(this)表示循环过程中，每一个tr,每一行数据
        //prop()获取在匹配的元素集中的第一个元素的属性值.pop('checked')表示查找选中的行
        var tr = $(this);
        var isChecked = $(this).find(':checkbox').prop('checked'); //这行意思是获取选中的行
        if(isChecked==true){    
        }else{
            $(this).find(':checkbox').prop('checked',true);
            //如果已经进入编辑模式，让选中行进入编辑状态
            var isEditMode = $(mode).hasClass('editing');
            if(isEditMode){
                //当前行进入编辑状态
				RowIntoEditMode(tr);
            }
        }
        
    });
    
}
function CheckReverse(mode,tb){
    //是否进入了编辑模式
    if($(mode).hasClass('editing')){
        //遍历所有tr
        $(tb).children().each(function(){
            var tr = $(this);
            var check_box = tr.children().first().find(':checkbox');
            if(check_box.prop('checked')){
                check_box.prop('checked',false);
				//当前行，退出编辑状态
                RowOutEditMode(tr);
            }else{
                check_box.prop('checked',true);
				//当前行进入编辑状态
				RowIntoEditMode(tr);
            }
        });


    }else{
        //
        $(tb).children().each(function(){
            var tr = $(this);
            var check_box = tr.children().first().find(':checkbox');
            if(check_box.prop('checked')){
                check_box.prop('checked',false);
            }else{
                check_box.prop('checked',true);
            }
        });
    }    
    
}
function CheckCancel(mode,tb){
    //取消选中checkbox
    //2、如果已经进入编辑模式，行退出编辑状态
    $(tb).children().each(function(){
        var tr = $(this);
        if(tr.find(':checkbox').prop('checked')){
            //移除选中
            tr.find(':checkbox').prop('checked',false);
            //这里的CheckCancel事件已经有传入值，所以这里的$(mode)代表$('#edit-mode'),上面的CheckAll事件的mode也是一样
            var isEditing = $(mode).hasClass('editing');
            if(isEditing == true){
                //当前行，退出编辑状态
                RowOutEditMode(tr);
            }
        }
    });
    
}
function EditMode(ths,tb){
    //ths =this
    //hasClass()检查当前的元素是否含有某个特定的类，如果有，则返回true
    var isEditing = $(ths).hasClass('editing');
    if(isEditing){
        //退出编辑模式
        $(ths).text('进入编辑模式');
        $(ths).removeClass('editing');
        $(tb).children().each(function(){
            //$(this)表示循环过程中，每一个tr,第一行数据
            var tr = $(this);
            if(tr.find(':checkbox').prop('checked')){
                //当前行，退出编辑状态
                RowOutEditMode(tr);
            }
        });
                
    }else{
        //进入编辑模式 
        $(ths).text('退出编辑模式');
        $(ths).addClass('editing');
        $(tb).children().each(function(){
            //$(this)表示循环过程中，每一个tr,第一行数据
            var tr = $(this);
            var isChecked = $(this).find(':checkbox').prop('checked');
            if(isChecked==true){
                //当前行进入编辑状态
				RowIntoEditMode(tr);
            }
        
        });
        
    }
}

//当前行进入编辑状态
function RowIntoEditMode(tr){
	tr.children().each(function(){
		var td = $(this);
		if(td.attr('edit') == 'true'){
			if(td.attr('edit-type') == 'select'){
				var all_values = window[td.attr('global-key')];  
                var select_val = td.attr('select-val');
                select_val = parseInt(select_val);
				var options = "";
				$.each(all_values,function(index,value){
					if(select_val == value.id){
						options += "<option selected='selected'>" + value.text + "</option>";
						
					}else{
						options += "<option>" + value.text + "</option>";
						
					}
				});
				 
	 
				var temp = "<select onchange='MultiChange(this);'>" +	options + "</select>";
				td.html(temp);
				
		}else{
			var text = td.text();
			var temp = "<input type='text' value='" + text+ "'/>";
			td.html(temp);				
		}
	  }

	})
}

//检测是否按下ctr键
/*
 监听是否已经按下control键
 */
window.globalCtrlKeyPress = false;

window.onkeydown = function(event){
	//console.log(event.keyCode);  //输出按下的键代表的值	
	//如果按下ctr则等于true 17表示ctr
	if(event && event.keyCode == 17){
		window.globalCtrlKeyPress = true;
	}else{
		window.globalCtrlKeyPress = false;
	}
};

function MultiChange(ths){


	/*
	 按下Control，联动表格中正在编辑的select
	 */
	if(window.globalCtrlKeyPress == true){
		//td所在的tr中的索引位置
		var index = $(ths).parent().index();
		var value = $(ths).val();
		$(ths).parent().parent().nextAll().find("td input[type='checkbox']:checked").each(function(){
			$(this).parent().parent().children().eq(index).children().val(value);
		});
	}
}

//
function RowOutEditMode(tr){
	tr.children().each(function(){
		var td = $(this);
		if(td.attr('edit') == 'true'){
			var inp = td.children(':first');//这里获取第一个元素，也就是input标签
			var input_value = inp.val();
			td.text(input_value);
		}
	});
}